package net_app.udp4_mulitcast;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

/**
 * 发送端 一发一收
 */
public class ClientDemo1 {
    public static void main(String[] args) throws Exception {
        System.out.println("=========客户端启动=========");
        // 1.创建发送端对象,发送端自带默认端口（人）
        DatagramSocket socket = new DatagramSocket();

        // 2.创建一个数据包对象封装数据（韭菜盘子）
        /*
        public DatagramPacket(byte buf[], int length,
                          InetAddress address, int port)
        参数一：封装要发送的数据（韭菜）
        参数二:发送数据的大小
        参数三:服务端的IP地址
        参数四:服务端的端口
         */
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入要发的消息：");
            String msg = sc.nextLine();
            if ("exit".equals(msg)){
                System.out.println("离线成功");
                socket.close();
                break;
            }
            byte[] buffer = msg.getBytes();
            // 广播需要使用广播地址：255.255.255.255 并且需要指定端口
            // 本机所在网段的其他主机的程序只要匹配端口成功就可以接收到消息
            DatagramPacket dp = new DatagramPacket(buffer,buffer.length, InetAddress.getByName("255.255.255.255"),8888);

            // 3.发送数据出去
            socket.send(dp);
        }

        socket.close();
    }
}
